/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package manejadores ;

import entidades.Centro;
import interfaz.Entidad;
import interfaz.Manejador;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import persistencia.Conexion;

/**
 *
 * @author Eugenio
 */
public class ManejadorDeCentro implements Manejador {

    private Conexion con;
    private static ManejadorDeCentro instancia;
    private ArrayList <Centro> centros;
    private PreparedStatement ps;
    private ResultSet rs;

    public ManejadorDeCentro (){
        con = Conexion.getInstancia();
    }

    public static ManejadorDeCentro getInstancia(){
        if(instancia==null){
            instancia=new ManejadorDeCentro();
        }

        return instancia;
    }

    public ArrayList <Centro> getCentros(){
        centros = new ArrayList<Centro>();
        String sql = "select * from centro";
        ps=(PreparedStatement) con.hacerEnunciado(sql);
        rs=con.hacerConsulta(sql);
        try {
            while (rs.next()) {
                Centro centro = new Centro(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getInt(5), rs.getInt(6), rs.getString(7), rs.getString(8), rs.getString(9), rs.getString(10), rs.getString(11), rs.getString(12),rs.getString(12),rs.getString(13),rs.getInt(14));
                centros.add(centro);
            }
        } catch (SQLException ex) {
           JOptionPane.showMessageDialog(null, "Error de tipo Sql");
        }
        return centros;
    }

    public int agregar(Entidad centro) {

        int fila = 0;
        String sql = "INSERT INTO centro (id_centro, fase, nombre_centro, telefono_centro, id_supervisor, id_ingeniero,"+
	"calle, numero, dist_municipal, paraje, seccion, sector,tipo_local,fecha_inaguracion,id_internet) VALUES(0, ?,?, ?, ?, ?, ?, ?, ?,?, ?, ?,?,?,?);";
        ps=(PreparedStatement)con.hacerEnunciado(sql);
        try {
            ps.setString(1, ((Centro) (centro)).getFaseCentro());
            ps.setString(2, ((Centro)(centro)).getNombreCentro());
            ps.setString(3, ((Centro)(centro)).getTelefono());
            ps.setInt(4, ((Centro)(centro)).getIdSupervisor());
            ps.setInt(5, ((Centro)(centro)).getIdIngeniero());
            ps.setString(6, ((Centro)(centro)).getCalle());
            ps.setString(7, ((Centro)(centro)).getNumero());
            ps.setString(8, ((Centro)(centro)).getDistMunicipal());
            ps.setString(9, ((Centro)(centro)).getParaje());
            ps.setString(10, ((Centro)(centro)).getSeccion());
            ps.setString(11, ((Centro)(centro)).getSector());
            ps.setString(12, ((Centro)(centro)).getTipoLocal());
            ps.setString(13, ((Centro)(centro)).getFechaInaguracion());
            ps.setInt(14, ((Centro)(centro)).getIdInternet());
            fila = ps.executeUpdate();
         } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Error de tipo Sql jejeje");
         }
         return fila;


    }

    public int eliminar(int id) {
        int fila =0;
        String sql ="delete from centro where id_centro =?";
        ps=(PreparedStatement)con.hacerEnunciado(sql);
        try {
            ps.setInt(1, id);
            fila = ps.executeUpdate();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Error de tipo Sql");
        }
        return fila;

    }

    public int modificar(Entidad centro, int id) {
        int fila =0;
        String sql="UPDATE centro SET  fase =? , nombre_centro = ? , telefono_centro = ? , id_supervisor = ?,"+
                "id_ingeniero = ? , calle = ? , numero = ? , dist_municipal = ? ,paraje = ?,seccion = ?,sector = ?,tipo_local = ?, fecha_inaguracion = ?,id_internet = ? WHERE id_centro = ?";
        ps=(PreparedStatement) con.hacerEnunciado(sql);
         try {
            ps.setString(1, ((Centro)(centro)).getFaseCentro());
            ps.setString(2, ((Centro)(centro)).getNombreCentro());
            ps.setString(3, ((Centro)(centro)).getTelefono());
            ps.setInt(4, ((Centro)(centro)).getIdSupervisor());
            ps.setInt(5, ((Centro)(centro)).getIdSupervisor());
            ps.setString(6, ((Centro)(centro)).getCalle());
            ps.setString(7, ((Centro)(centro)).getNumero());
            ps.setString(8, ((Centro)(centro)).getDistMunicipal());
            ps.setString(9, ((Centro)(centro)).getParaje());
            ps.setString(10, ((Centro)(centro)).getSeccion());
            ps.setString(11, ((Centro)(centro)).getSector());
            ps.setString(12, ((Centro)(centro)).getTipoLocal());
            ps.setString(13, ((Centro)(centro)).getFechaInaguracion());
            ps.setInt(14, ((Centro)(centro)).getIdInternet());
            ps.setInt(15, id);
            fila = ps.executeUpdate();
         } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Error de tipo Sql");
         }
         return fila;

    }

}
